package cn.exercises.d01;

import java.util.Random;

public class Role {
    private String name;
    private int blood;


    public Role() {
    }

    public Role(String name, int blood) {
        this.name = name;
        this.blood = blood;
    }

    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return blood
     */
    public int getBlood() {
        return blood;
    }

    /**
     * 设置
     * @param blood
     */
    public void setBlood(int blood) {
        this.blood = blood;
    }

    public String toString() {
        return "Role{name = " + name + ", blood = " + blood + "}";
    }

    public void attack(Role r){
        Random rd = new Random();
        // 计算造成的伤害 1 ~ 20
        int hurt = rd.nextInt(20) + 1; // 伤害 随机: 1-20
        // 剩余血量
        int remainBlood = r.getBlood() - hurt; // 剩下
        // 对剩余血量做一个验证，如果为负数了，就修改为0
        remainBlood = Math.max(remainBlood, 0);
        // 修改一下挨揍的人的血量
        r.setBlood(remainBlood);
        // this表示方法的调用者
        System.out.printf("%s举起拳头打了%s一下，造成了%d点伤害，%s还剩下%d点血。\n",this.name,r.getName(),hurt,r.getName(),remainBlood);
    }
}
